home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / utils / sound / convrtr / amiga / amisox_w / handlers.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-05-12  |  5.6 KB  |  221 lines

  1. /*
  2.  * July 5, 1991
  3.  * Copyright 1991 Lance Norskog And Sundry Contributors
  4.  * This source code is freely redistributable and may be used for
  5.  * any purpose.  This copyright notice must be maintained. 
  6.  * Lance Norskog And Sundry Contributors are not responsible for 
  7.  * the consequences of using this software.
  8.  */
  9.  
  10. #include "st.h"
  11.  
  12. /*
  13.  * Sound Tools file format and effect tables.
  14.  */
  15.  
  16. /* File format handlers. */
  17.  
  18. char *rawnames[] = {
  19.     "raw",
  20. /*?    "sou", /* */
  21.     (char *) 0
  22. };
  23. extern rawstartread(), rawread();
  24. extern rawstartwrite(), rawwrite(), rawstopwrite();
  25.  
  26. char *vocnames[] = {
  27.     "voc",
  28.     (char *) 0
  29. };
  30. extern vocstartread(), vocread(), vocstopread();
  31. extern vocstartwrite(), vocwrite(), vocstopwrite();
  32.  
  33. char *aunames[] = {
  34.     "au",
  35. #ifdef    NeXT
  36.     "snd",
  37. #endif
  38.     (char *) 0
  39. };
  40. extern austartread();
  41. extern austartwrite(), auwrite(), austopwrite();
  42.  
  43. char *aiffnames[] = {
  44.     "aiff",
  45.     (char *) 0
  46. };
  47. extern aiffstartread(), aiffread(), aiffstopread();
  48. extern aiffstartwrite(), aiffwrite(), aiffstopwrite();
  49.  
  50. char *svxnames[] = {
  51.     "8svx",
  52. #ifdef    AMIGA
  53.     "iff",
  54. #endif
  55.     (char *) 0
  56. };
  57. extern svxstartread(), svxread(), svxstopread();
  58. extern svxstartwrite(), svxwrite(), svxstopwrite();
  59.  
  60. char *hcomnames[] = {
  61.     "hcom",
  62.     (char *) 0
  63. };
  64. extern hcomstartread(), hcomread(), hcomstopread();
  65. extern hcomstartwrite(), hcomwrite(), hcomstopwrite();
  66.  
  67. char *sndtnames[] = {
  68.     "sndt",
  69. #ifdef    DOS
  70.     "snd",
  71. #endif
  72.     (char *) 0
  73. }; 
  74. extern sndtstartread();
  75. extern sndtstartwrite(), sndtwrite(), sndtstopwrite();
  76.  
  77. char *sndrnames[] = {
  78.     "sndr",
  79.     (char *) 0
  80. };
  81. extern sndrstartwrite();
  82.  
  83. char *ubnames[] = {
  84.     "ub",
  85.     "sou",
  86. #ifdef    MAC
  87.     "snd",
  88. #endif
  89.     (char *) 0
  90. };
  91. extern ubstartread();
  92. extern ubstartwrite();
  93.  
  94. char *sbnames[] = {
  95.     "sb",
  96.     (char *) 0
  97. };
  98. extern sbstartread();
  99. extern sbstartwrite();
  100.  
  101. char *uwnames[] = {
  102.     "uw",
  103.     (char *) 0
  104. };
  105. extern uwstartread();
  106. extern uwstartwrite();
  107.  
  108. char *swnames[] = {
  109.     "sw",
  110.     (char *) 0
  111. };
  112. extern swstartread();
  113. extern swstartwrite();
  114.  
  115. char *ulnames[] = {
  116.     "ul",
  117.     (char *) 0
  118. };
  119. extern ulstartread();
  120. extern ulstartwrite();
  121.  
  122.  
  123. char *sfnames[] = {
  124.     "sf",
  125.     (char *) 0
  126. };
  127. extern sfstartread();
  128. extern sfstartwrite();
  129.  
  130. /* Adding .wav support...dgc */
  131. char *wavnames[] = {
  132.     "wav",
  133.     (char *) 0
  134. };
  135. extern wavstartread(), wavread(), wavstopread();
  136. extern wavstartwrite(), wavwrite(), wavstopwrite();
  137.  
  138.  
  139. extern nothing();
  140.  
  141. format_t formats[] = {
  142.     {rawnames, rawstartread, rawread, nothing,     /* Raw format */
  143.         rawstartwrite, rawwrite, nothing},
  144.     {vocnames, vocstartread, vocread, vocstopread,  /* Sound Blaster .VOC */
  145.         vocstartwrite, vocwrite, vocstopwrite},
  146.     {aunames, austartread, rawread, nothing,     /* SPARC .AU w/header */
  147.         austartwrite, auwrite, austopwrite},    
  148.     {ubnames, ubstartread, rawread, nothing,     /* unsigned byte raw */
  149.         ubstartwrite, rawwrite, nothing},    /* Relies on raw */
  150.     {sbnames, sbstartread, rawread, nothing,     /* signed byte raw */
  151.         sbstartwrite, rawwrite, nothing},    
  152.     {uwnames, uwstartread, rawread, nothing,     /* unsigned word raw */
  153.         uwstartwrite, rawwrite, nothing},    
  154.     {swnames, swstartread, rawread, nothing,     /* signed word raw */
  155.         swstartwrite, rawwrite, nothing},
  156.     {ulnames, ulstartread, rawread, nothing,     /* u-law byte raw */
  157.         ulstartwrite, rawwrite, nothing},    
  158.     {aiffnames, aiffstartread, rawread, nothing,    /* SGI/Amiga AIFF */
  159.         aiffstartwrite, aiffwrite, aiffstopwrite},
  160.     {svxnames, svxstartread, svxread, svxstopread,      /* Amiga 8SVX */
  161.         svxstartwrite, svxwrite, svxstopwrite},
  162.     {hcomnames, hcomstartread, hcomread, hcomstopread, /* Mac FSSD/HCOM */
  163.         hcomstartwrite, hcomwrite, hcomstopwrite},
  164.     {sfnames, sfstartread, rawread, nothing,     /* IRCAM Sound File */
  165.         sfstartwrite, rawwrite, nothing},    /* Relies on raw */
  166.     {sndtnames, sndtstartread, rawread, nothing,    /* Sndtool Sound File */
  167.         sndtstartwrite, sndtwrite, sndtstopwrite},
  168.     {sndrnames, sndtstartread, rawread, nothing,    /* Sounder Sound File */
  169.         sndrstartwrite, rawwrite, nothing},
  170. /* Adding .wav support...dgc */
  171.     {wavnames, wavstartread, wavread, wavstopread,  /* Windows 3.1 RIFF WAVE */
  172.         wavstartwrite, wavwrite, wavstopwrite},
  173.     0
  174. };
  175.  
  176. /* Effects handlers. */
  177.  
  178. extern null_drain();        /* dummy drain routine */
  179.  
  180. extern copy_getopts(), copy_start(), copy_flow(), copy_stop();
  181. extern avg_getopts(), avg_start(), avg_flow(), avg_stop();
  182. extern pred_getopts(), pred_start(), pred_flow(), pred_stop();
  183. extern stat_getopts(), stat_start(), stat_flow(), stat_stop();
  184. extern vibro_getopts(), vibro_start(), vibro_flow(), vibro_stop();
  185. extern band_getopts(), band_start(), band_flow(), band_stop();
  186. extern lowp_getopts(), lowp_start(), lowp_flow(), lowp_stop();
  187. extern echo_getopts(), echo_start(), echo_flow(), echo_drain(), echo_stop();
  188. extern rate_getopts(), rate_start(), rate_flow(), rate_stop();
  189.  
  190. /*
  191.  * EFF_CHAN means that the number of channels can change.
  192.  * EFF_RATE means that the sample rate can change.
  193.  * The first effect which can handle a data rate change, stereo->mono, etc.
  194.  * is the default handler for that problem.
  195.  * 
  196.  * EFF_MCHAN just means that the effect is coded for multiple channels.
  197.  */
  198.  
  199. effect_t effects[] = {
  200.     {"copy", EFF_MCHAN, 
  201.         copy_getopts, copy_start, copy_flow, null_drain, nothing},
  202.     {"avg", EFF_CHAN, 
  203.         avg_getopts, avg_start, avg_flow, null_drain, avg_stop},
  204.     {"pred", 0,
  205.         pred_getopts, pred_start, pred_flow, null_drain, pred_stop},
  206.     {"stat", EFF_MCHAN, 
  207.         stat_getopts, stat_start, stat_flow, null_drain, stat_stop},
  208.     {"vibro", 0, 
  209.         vibro_getopts, vibro_start, vibro_flow, null_drain, nothing},
  210.     {"echo", 0, 
  211.         echo_getopts, echo_start, echo_flow, echo_drain, echo_stop},
  212.     {"band", 0, 
  213.         band_getopts, band_start, band_flow, null_drain, band_stop},
  214.     {"lowp", 0, 
  215.         lowp_getopts, lowp_start, lowp_flow, null_drain, lowp_stop},
  216.     {"rate", EFF_RATE, 
  217.         rate_getopts, rate_start, rate_flow, null_drain, nothing},
  218.     0
  219. };
  220.  
  221.